using System;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Linq;
using System.Text;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Way.EntityDB.Attributes;
using System.Diagnostics.CodeAnalysis;

namespace CheckIn.PlanHost.DBModels
{
    /// <summary>打卡项</summary>
    [TableConfig]
    [Table("checkinitem")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class CheckInItem :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        string _Title;
        /// <summary>标题</summary>
        [MaxLength(255)]
        [DisallowNull]
        [Display(Name = "标题")]
        [Column("title")]
        public virtual string Title
        {
            get
            {
                return _Title;
            }
            set
            {
                if ((_Title != value))
                {
                    SendPropertyChanging("Title",_Title,value);
                    _Title = value;
                    SendPropertyChanged("Title");
                }
            }
        }
        string? _SubTitle;
        /// <summary>副标题</summary>
        [MaxLength(255)]
        [Display(Name = "副标题")]
        [Column("subtitle")]
        public virtual string? SubTitle
        {
            get
            {
                return _SubTitle;
            }
            set
            {
                if ((_SubTitle != value))
                {
                    SendPropertyChanging("SubTitle",_SubTitle,value);
                    _SubTitle = value;
                    SendPropertyChanged("SubTitle");
                }
            }
        }
        string? _Intro;
        /// <summary>介绍</summary>
        [Display(Name = "介绍")]
        [Column("intro")]
        public virtual string? Intro
        {
            get
            {
                return _Intro;
            }
            set
            {
                if ((_Intro != value))
                {
                    SendPropertyChanging("Intro",_Intro,value);
                    _Intro = value;
                    SendPropertyChanged("Intro");
                }
            }
        }
        CheckInItem_ModeEnum _Mode=(CheckInItem_ModeEnum)(1);
        /// <summary>打卡方式</summary>
        [DisallowNull]
        [Display(Name = "打卡方式")]
        [Column("mode")]
        public virtual CheckInItem_ModeEnum Mode
        {
            get
            {
                return _Mode;
            }
            set
            {
                if ((_Mode != value))
                {
                    SendPropertyChanging("Mode",_Mode,value);
                    _Mode = value;
                    SendPropertyChanged("Mode");
                }
            }
        }
        CheckInItem_OpenModeEnum _OpenMode=(CheckInItem_OpenModeEnum)(1);
        /// <summary>开放权限</summary>
        [DisallowNull]
        [Display(Name = "开放权限")]
        [Column("openmode")]
        public virtual CheckInItem_OpenModeEnum OpenMode
        {
            get
            {
                return _OpenMode;
            }
            set
            {
                if ((_OpenMode != value))
                {
                    SendPropertyChanging("OpenMode",_OpenMode,value);
                    _OpenMode = value;
                    SendPropertyChanged("OpenMode");
                }
            }
        }
        Int64 _OwnerId=0;
        /// <summary>创建人id，0表示系统创建</summary>
        [DisallowNull]
        [Display(Name = "创建人id，0表示系统创建")]
        [Column("ownerid")]
        public virtual Int64 OwnerId
        {
            get
            {
                return _OwnerId;
            }
            set
            {
                if ((_OwnerId != value))
                {
                    SendPropertyChanging("OwnerId",_OwnerId,value);
                    _OwnerId = value;
                    SendPropertyChanged("OwnerId");
                }
            }
        }
        DateTime _CreateTime;
        /// <summary>创建时间</summary>
        [DisallowNull]
        [Display(Name = "创建时间")]
        [Column("createtime")]
        public virtual DateTime CreateTime
        {
            get
            {
                return _CreateTime;
            }
            set
            {
                if ((_CreateTime != value))
                {
                    SendPropertyChanging("CreateTime",_CreateTime,value);
                    _CreateTime = value;
                    SendPropertyChanged("CreateTime");
                }
            }
        }
        Int32 _JoinCount=0;
        /// <summary>加入人数</summary>
        [DisallowNull]
        [Display(Name = "加入人数")]
        [Column("joincount")]
        public virtual Int32 JoinCount
        {
            get
            {
                return _JoinCount;
            }
            set
            {
                if ((_JoinCount != value))
                {
                    SendPropertyChanging("JoinCount",_JoinCount,value);
                    _JoinCount = value;
                    SendPropertyChanged("JoinCount");
                }
            }
        }
        CheckInItemUIExt? _UIExt;
        /// <summary>扩展信息</summary>
        [Display(Name = "扩展信息")]
        [Column("uiext",TypeName = "jsonb")]
        public virtual CheckInItemUIExt? UIExt
        {
            get
            {
                return _UIExt;
            }
            set
            {
                    SendPropertyChanging("UIExt",_UIExt,value);
                    _UIExt = value;
                    SendPropertyChanged("UIExt");
            }
        }
        Boolean _IsGroup=false;
        /// <summary>是否是组项目</summary>
        [DisallowNull]
        [Display(Name = "是否是组项目")]
        [Column("isgroup")]
        public virtual Boolean IsGroup
        {
            get
            {
                return _IsGroup;
            }
            set
            {
                if ((_IsGroup != value))
                {
                    SendPropertyChanging("IsGroup",_IsGroup,value);
                    _IsGroup = value;
                    SendPropertyChanged("IsGroup");
                }
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<CheckInItem, bool>> exp)
        {
            base.SetValue<CheckInItem>(exp);
        }
    }
    public enum CheckInItem_ModeEnum:int
    {
        /// <summary>时间段</summary>
        Range = 1,
        /// <summary>时间点</summary>
        Time = 2
    }
    public enum CheckInItem_OpenModeEnum:int
    {
        /// <summary>私人</summary>
        Personal = 1,
        /// <summary>公开的</summary>
        Open = 2,
        /// <summary>关注可见</summary>
        ForFllow = 3
    }
    /// <summary>用户参与的打卡项</summary>
    [TableConfig]
    [Table("useritem")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class UserItem :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _ItemId;
        /// <summary>打卡项id</summary>
        [DisallowNull]
        [Display(Name = "打卡项id")]
        [Column("itemid")]
        public virtual Int64 ItemId
        {
            get
            {
                return _ItemId;
            }
            set
            {
                if ((_ItemId != value))
                {
                    SendPropertyChanging("ItemId",_ItemId,value);
                    _ItemId = value;
                    SendPropertyChanged("ItemId");
                }
            }
        }
        Int64 _UserId;
        /// <summary>用户id</summary>
        [DisallowNull]
        [Display(Name = "用户id")]
        [Column("userid")]
        public virtual Int64 UserId
        {
            get
            {
                return _UserId;
            }
            set
            {
                if ((_UserId != value))
                {
                    SendPropertyChanging("UserId",_UserId,value);
                    _UserId = value;
                    SendPropertyChanged("UserId");
                }
            }
        }
        DateTime _JoinTime;
        /// <summary>加入时间</summary>
        [DisallowNull]
        [Display(Name = "加入时间")]
        [Column("jointime")]
        public virtual DateTime JoinTime
        {
            get
            {
                return _JoinTime;
            }
            set
            {
                if ((_JoinTime != value))
                {
                    SendPropertyChanging("JoinTime",_JoinTime,value);
                    _JoinTime = value;
                    SendPropertyChanged("JoinTime");
                }
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<UserItem, bool>> exp)
        {
            base.SetValue<UserItem>(exp);
        }
    }
    /// <summary>打卡计划</summary>
    [TableConfig]
    [Table("checkindaytime")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class CheckInDayTime :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _UserId;
        /// <summary>用户id</summary>
        [DisallowNull]
        [Display(Name = "用户id")]
        [Column("userid")]
        public virtual Int64 UserId
        {
            get
            {
                return _UserId;
            }
            set
            {
                if ((_UserId != value))
                {
                    SendPropertyChanging("UserId",_UserId,value);
                    _UserId = value;
                    SendPropertyChanged("UserId");
                }
            }
        }
        Int64 _ItemId;
        /// <summary>打卡项id</summary>
        [DisallowNull]
        [Display(Name = "打卡项id")]
        [Column("itemid")]
        public virtual Int64 ItemId
        {
            get
            {
                return _ItemId;
            }
            set
            {
                if ((_ItemId != value))
                {
                    SendPropertyChanging("ItemId",_ItemId,value);
                    _ItemId = value;
                    SendPropertyChanged("ItemId");
                }
            }
        }
        CheckInDayTime_WeekDayEnum _WeekDay;
        /// <summary>
        /// 打卡日
        /// 举例：
        /// 假如选择周一和周三，值等于计算公式： (1 | 4)
        /// 如果要判断是否值包含了周六，则用计算式：(数值 &amp; 32)==32 来判断
        /// </summary>
        [DisallowNull]
        [Display(Name = "打卡日 举例： 假如选择周一和周三，值等于计算公式： (1 | 4) 如果要判断是否值包含了周六，则用计算式：(数值 & 32)==32 来判断")]
        [Column("weekday")]
        public virtual CheckInDayTime_WeekDayEnum WeekDay
        {
            get
            {
                return _WeekDay;
            }
            set
            {
                if ((_WeekDay != value))
                {
                    SendPropertyChanging("WeekDay",_WeekDay,value);
                    _WeekDay = value;
                    SendPropertyChanged("WeekDay");
                }
            }
        }
        CheckIn.PlanHost.Dtos.TimeRange[]? _Times;
        /// <summary>时间段数组</summary>
        [Display(Name = "时间段数组")]
        [Column("times",TypeName = "jsonb")]
        public virtual CheckIn.PlanHost.Dtos.TimeRange[]? Times
        {
            get
            {
                return _Times;
            }
            set
            {
                    SendPropertyChanging("Times",_Times,value);
                    _Times = value;
                    SendPropertyChanged("Times");
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<CheckInDayTime, bool>> exp)
        {
            base.SetValue<CheckInDayTime>(exp);
        }
    }
    public enum CheckInDayTime_WeekDayEnum:int
    {
        /// <summary>周一</summary>
        Monday = 1<<0,
        /// <summary>周二</summary>
        Tuesday = 1<<1,
        /// <summary>周三</summary>
        Wednesday = 1<<2,
        /// <summary>周四</summary>
        Thursday = 1<<3,
        /// <summary>周五</summary>
        Friday = 1<<4,
        /// <summary>周六</summary>
        Saturday = 1<<5,
        /// <summary>周日</summary>
        Sunday = 1<<6,
    }
    /// <summary>打卡记录</summary>
    [TableConfig]
    [Table("checkinhistory")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class CheckInHistory :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _UserId;
        /// <summary>打卡人</summary>
        [DisallowNull]
        [Display(Name = "打卡人")]
        [Column("userid")]
        public virtual Int64 UserId
        {
            get
            {
                return _UserId;
            }
            set
            {
                if ((_UserId != value))
                {
                    SendPropertyChanging("UserId",_UserId,value);
                    _UserId = value;
                    SendPropertyChanged("UserId");
                }
            }
        }
        Int64 _ItemId;
        /// <summary>打卡项目</summary>
        [DisallowNull]
        [Display(Name = "打卡项目")]
        [Column("itemid")]
        public virtual Int64 ItemId
        {
            get
            {
                return _ItemId;
            }
            set
            {
                if ((_ItemId != value))
                {
                    SendPropertyChanging("ItemId",_ItemId,value);
                    _ItemId = value;
                    SendPropertyChanged("ItemId");
                }
            }
        }
        DateTime _CreateTime;
        [DisallowNull]
        [Column("createtime")]
        public virtual DateTime CreateTime
        {
            get
            {
                return _CreateTime;
            }
            set
            {
                if ((_CreateTime != value))
                {
                    SendPropertyChanging("CreateTime",_CreateTime,value);
                    _CreateTime = value;
                    SendPropertyChanged("CreateTime");
                }
            }
        }
        DateTime _Date;
        /// <summary>打卡日期</summary>
        [DisallowNull]
        [Display(Name = "打卡日期")]
        [Column("date")]
        public virtual DateTime Date
        {
            get
            {
                return _Date;
            }
            set
            {
                if ((_Date != value))
                {
                    SendPropertyChanging("Date",_Date,value);
                    _Date = value;
                    SendPropertyChanged("Date");
                }
            }
        }
        System.Nullable<DateTime> _StartTime;
        /// <summary>开始时间</summary>
        [Display(Name = "开始时间")]
        [Column("starttime")]
        public virtual System.Nullable<DateTime> StartTime
        {
            get
            {
                return _StartTime;
            }
            set
            {
                if ((_StartTime != value))
                {
                    SendPropertyChanging("StartTime",_StartTime,value);
                    _StartTime = value;
                    SendPropertyChanged("StartTime");
                }
            }
        }
        System.Nullable<DateTime> _EndTime;
        /// <summary>结束时间</summary>
        [Display(Name = "结束时间")]
        [Column("endtime")]
        public virtual System.Nullable<DateTime> EndTime
        {
            get
            {
                return _EndTime;
            }
            set
            {
                if ((_EndTime != value))
                {
                    SendPropertyChanging("EndTime",_EndTime,value);
                    _EndTime = value;
                    SendPropertyChanged("EndTime");
                }
            }
        }
        System.Nullable<Int32> _Minutes;
        /// <summary>
        /// 时长（分钟）
        /// 服务器自动计算
        /// </summary>
        [Display(Name = "时长（分钟） 服务器自动计算")]
        [Column("minutes")]
        public virtual System.Nullable<Int32> Minutes
        {
            get
            {
                return _Minutes;
            }
            set
            {
                if ((_Minutes != value))
                {
                    SendPropertyChanging("Minutes",_Minutes,value);
                    _Minutes = value;
                    SendPropertyChanged("Minutes");
                }
            }
        }
        string? _Content;
        /// <summary>感悟</summary>
        [Display(Name = "感悟")]
        [Column("content")]
        public virtual string? Content
        {
            get
            {
                return _Content;
            }
            set
            {
                if ((_Content != value))
                {
                    SendPropertyChanging("Content",_Content,value);
                    _Content = value;
                    SendPropertyChanged("Content");
                }
            }
        }
        long[]? _OpenUserIds;
        /// <summary>
        /// 谁可以看
        /// null表示公开
        /// </summary>
        [Display(Name = "谁可以看 null表示公开")]
        [Column("openuserids",TypeName = "jsonb")]
        public virtual long[]? OpenUserIds
        {
            get
            {
                return _OpenUserIds;
            }
            set
            {
                    SendPropertyChanging("OpenUserIds",_OpenUserIds,value);
                    _OpenUserIds = value;
                    SendPropertyChanged("OpenUserIds");
            }
        }
        string[]? _Pics;
        /// <summary>照片</summary>
        [Display(Name = "照片")]
        [Column("pics",TypeName = "jsonb")]
        public virtual string[]? Pics
        {
            get
            {
                return _Pics;
            }
            set
            {
                    SendPropertyChanging("Pics",_Pics,value);
                    _Pics = value;
                    SendPropertyChanged("Pics");
            }
        }
        Int32 _Likes=0;
        /// <summary>点赞数</summary>
        [DisallowNull]
        [Display(Name = "点赞数")]
        [Column("likes")]
        public virtual Int32 Likes
        {
            get
            {
                return _Likes;
            }
            set
            {
                if ((_Likes != value))
                {
                    SendPropertyChanging("Likes",_Likes,value);
                    _Likes = value;
                    SendPropertyChanged("Likes");
                }
            }
        }
        Int32 _Comments=0;
        /// <summary>评论数</summary>
        [DisallowNull]
        [Display(Name = "评论数")]
        [Column("comments")]
        public virtual Int32 Comments
        {
            get
            {
                return _Comments;
            }
            set
            {
                if ((_Comments != value))
                {
                    SendPropertyChanging("Comments",_Comments,value);
                    _Comments = value;
                    SendPropertyChanged("Comments");
                }
            }
        }
        HistoryExt? _Ext;
        /// <summary>扩展信息</summary>
        [Display(Name = "扩展信息")]
        [Column("ext",TypeName = "jsonb")]
        public virtual HistoryExt? Ext
        {
            get
            {
                return _Ext;
            }
            set
            {
                    SendPropertyChanging("Ext",_Ext,value);
                    _Ext = value;
                    SendPropertyChanged("Ext");
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<CheckInHistory, bool>> exp)
        {
            base.SetValue<CheckInHistory>(exp);
        }
    }
    /// <summary>评论打卡记录</summary>
    [TableConfig]
    [Table("hisotrycomment")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class HisotryComment :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _UserId;
        /// <summary>打卡人id</summary>
        [DisallowNull]
        [Display(Name = "打卡人id")]
        [Column("userid")]
        public virtual Int64 UserId
        {
            get
            {
                return _UserId;
            }
            set
            {
                if ((_UserId != value))
                {
                    SendPropertyChanging("UserId",_UserId,value);
                    _UserId = value;
                    SendPropertyChanged("UserId");
                }
            }
        }
        Int64 _HistoryId;
        /// <summary>打卡记录id</summary>
        [DisallowNull]
        [Display(Name = "打卡记录id")]
        [Column("historyid")]
        public virtual Int64 HistoryId
        {
            get
            {
                return _HistoryId;
            }
            set
            {
                if ((_HistoryId != value))
                {
                    SendPropertyChanging("HistoryId",_HistoryId,value);
                    _HistoryId = value;
                    SendPropertyChanged("HistoryId");
                }
            }
        }
        DateTime _CreateTime;
        [DisallowNull]
        [Column("createtime")]
        public virtual DateTime CreateTime
        {
            get
            {
                return _CreateTime;
            }
            set
            {
                if ((_CreateTime != value))
                {
                    SendPropertyChanging("CreateTime",_CreateTime,value);
                    _CreateTime = value;
                    SendPropertyChanged("CreateTime");
                }
            }
        }
        Int64 _CommentUserId;
        /// <summary>评论人id</summary>
        [DisallowNull]
        [Display(Name = "评论人id")]
        [Column("commentuserid")]
        public virtual Int64 CommentUserId
        {
            get
            {
                return _CommentUserId;
            }
            set
            {
                if ((_CommentUserId != value))
                {
                    SendPropertyChanging("CommentUserId",_CommentUserId,value);
                    _CommentUserId = value;
                    SendPropertyChanged("CommentUserId");
                }
            }
        }
        string? _Content;
        /// <summary>内容</summary>
        [MaxLength(255)]
        [Display(Name = "内容")]
        [Column("content")]
        public virtual string? Content
        {
            get
            {
                return _Content;
            }
            set
            {
                if ((_Content != value))
                {
                    SendPropertyChanging("Content",_Content,value);
                    _Content = value;
                    SendPropertyChanged("Content");
                }
            }
        }
        UserInfoExt? _CommentUserExt;
        /// <summary>评论人扩展信息</summary>
        [Display(Name = "评论人扩展信息")]
        [Column("commentuserext",TypeName = "jsonb")]
        public virtual UserInfoExt? CommentUserExt
        {
            get
            {
                return _CommentUserExt;
            }
            set
            {
                    SendPropertyChanging("CommentUserExt",_CommentUserExt,value);
                    _CommentUserExt = value;
                    SendPropertyChanged("CommentUserExt");
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<HisotryComment, bool>> exp)
        {
            base.SetValue<HisotryComment>(exp);
        }
    }
    /// <summary>活动</summary>
    [TableConfig]
    [Table("activity")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class Activity :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        string? _Title;
        /// <summary>活动标题</summary>
        [MaxLength(250)]
        [Display(Name = "活动标题")]
        [Column("title")]
        public virtual string? Title
        {
            get
            {
                return _Title;
            }
            set
            {
                if ((_Title != value))
                {
                    SendPropertyChanging("Title",_Title,value);
                    _Title = value;
                    SendPropertyChanged("Title");
                }
            }
        }
        string? _Sponsor;
        /// <summary>主办方</summary>
        [MaxLength(255)]
        [Display(Name = "主办方")]
        [Column("sponsor")]
        public virtual string? Sponsor
        {
            get
            {
                return _Sponsor;
            }
            set
            {
                if ((_Sponsor != value))
                {
                    SendPropertyChanging("Sponsor",_Sponsor,value);
                    _Sponsor = value;
                    SendPropertyChanged("Sponsor");
                }
            }
        }
        string? _Location;
        /// <summary>地址</summary>
        [MaxLength(255)]
        [Display(Name = "地址")]
        [Column("location")]
        public virtual string? Location
        {
            get
            {
                return _Location;
            }
            set
            {
                if ((_Location != value))
                {
                    SendPropertyChanging("Location",_Location,value);
                    _Location = value;
                    SendPropertyChanged("Location");
                }
            }
        }
        string? _Introduction;
        /// <summary>介绍</summary>
        [Display(Name = "介绍")]
        [Column("introduction")]
        public virtual string? Introduction
        {
            get
            {
                return _Introduction;
            }
            set
            {
                if ((_Introduction != value))
                {
                    SendPropertyChanging("Introduction",_Introduction,value);
                    _Introduction = value;
                    SendPropertyChanged("Introduction");
                }
            }
        }
        string? _ImgUrl;
        /// <summary>封面图地址</summary>
        [MaxLength(250)]
        [Display(Name = "封面图地址")]
        [Column("imgurl")]
        public virtual string? ImgUrl
        {
            get
            {
                return _ImgUrl;
            }
            set
            {
                if ((_ImgUrl != value))
                {
                    SendPropertyChanging("ImgUrl",_ImgUrl,value);
                    _ImgUrl = value;
                    SendPropertyChanged("ImgUrl");
                }
            }
        }
        System.Nullable<DateTime> _JoinStartTime;
        /// <summary>报名开始时间</summary>
        [Display(Name = "报名开始时间")]
        [Column("joinstarttime")]
        public virtual System.Nullable<DateTime> JoinStartTime
        {
            get
            {
                return _JoinStartTime;
            }
            set
            {
                if ((_JoinStartTime != value))
                {
                    SendPropertyChanging("JoinStartTime",_JoinStartTime,value);
                    _JoinStartTime = value;
                    SendPropertyChanged("JoinStartTime");
                }
            }
        }
        System.Nullable<DateTime> _JoinEndTime;
        /// <summary>报名截止时间</summary>
        [Display(Name = "报名截止时间")]
        [Column("joinendtime")]
        public virtual System.Nullable<DateTime> JoinEndTime
        {
            get
            {
                return _JoinEndTime;
            }
            set
            {
                if ((_JoinEndTime != value))
                {
                    SendPropertyChanging("JoinEndTime",_JoinEndTime,value);
                    _JoinEndTime = value;
                    SendPropertyChanged("JoinEndTime");
                }
            }
        }
        DateTime _BeginTime;
        /// <summary>活动开始时间</summary>
        [DisallowNull]
        [Display(Name = "活动开始时间")]
        [Column("begintime")]
        public virtual DateTime BeginTime
        {
            get
            {
                return _BeginTime;
            }
            set
            {
                if ((_BeginTime != value))
                {
                    SendPropertyChanging("BeginTime",_BeginTime,value);
                    _BeginTime = value;
                    SendPropertyChanged("BeginTime");
                }
            }
        }
        DateTime _EndTime;
        /// <summary>活动结束时间</summary>
        [DisallowNull]
        [Display(Name = "活动结束时间")]
        [Column("endtime")]
        public virtual DateTime EndTime
        {
            get
            {
                return _EndTime;
            }
            set
            {
                if ((_EndTime != value))
                {
                    SendPropertyChanging("EndTime",_EndTime,value);
                    _EndTime = value;
                    SendPropertyChanged("EndTime");
                }
            }
        }
        System.Nullable<DateTime> _CreateTime;
        /// <summary>创建时间</summary>
        [Display(Name = "创建时间")]
        [Column("createtime")]
        public virtual System.Nullable<DateTime> CreateTime
        {
            get
            {
                return _CreateTime;
            }
            set
            {
                if ((_CreateTime != value))
                {
                    SendPropertyChanging("CreateTime",_CreateTime,value);
                    _CreateTime = value;
                    SendPropertyChanged("CreateTime");
                }
            }
        }
        Int32 _JoinCount=0;
        /// <summary>参与人数</summary>
        [DisallowNull]
        [Display(Name = "参与人数")]
        [Column("joincount")]
        public virtual Int32 JoinCount
        {
            get
            {
                return _JoinCount;
            }
            set
            {
                if ((_JoinCount != value))
                {
                    SendPropertyChanging("JoinCount",_JoinCount,value);
                    _JoinCount = value;
                    SendPropertyChanged("JoinCount");
                }
            }
        }
        System.Nullable<Int32> _Sort;
        /// <summary>推荐排序，由小到大</summary>
        [Display(Name = "推荐排序，由小到大")]
        [Column("sort")]
        public virtual System.Nullable<Int32> Sort
        {
            get
            {
                return _Sort;
            }
            set
            {
                if ((_Sort != value))
                {
                    SendPropertyChanging("Sort",_Sort,value);
                    _Sort = value;
                    SendPropertyChanged("Sort");
                }
            }
        }
        ActivityUIExt? _UIExt;
        /// <summary>扩展信息</summary>
        [Display(Name = "扩展信息")]
        [Column("uiext",TypeName = "jsonb")]
        public virtual ActivityUIExt? UIExt
        {
            get
            {
                return _UIExt;
            }
            set
            {
                    SendPropertyChanging("UIExt",_UIExt,value);
                    _UIExt = value;
                    SendPropertyChanged("UIExt");
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<Activity, bool>> exp)
        {
            base.SetValue<Activity>(exp);
        }
    }
    /// <summary>活动参与人</summary>
    [TableConfig]
    [Table("activityjoin")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class ActivityJoin :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _ActivityId;
        [DisallowNull]
        [Column("activityid")]
        public virtual Int64 ActivityId
        {
            get
            {
                return _ActivityId;
            }
            set
            {
                if ((_ActivityId != value))
                {
                    SendPropertyChanging("ActivityId",_ActivityId,value);
                    _ActivityId = value;
                    SendPropertyChanged("ActivityId");
                }
            }
        }
        Int64 _UserId;
        [DisallowNull]
        [Column("userid")]
        public virtual Int64 UserId
        {
            get
            {
                return _UserId;
            }
            set
            {
                if ((_UserId != value))
                {
                    SendPropertyChanging("UserId",_UserId,value);
                    _UserId = value;
                    SendPropertyChanged("UserId");
                }
            }
        }
        DateTime _JoinTime;
        /// <summary>参与时间</summary>
        [DisallowNull]
        [Display(Name = "参与时间")]
        [Column("jointime")]
        public virtual DateTime JoinTime
        {
            get
            {
                return _JoinTime;
            }
            set
            {
                if ((_JoinTime != value))
                {
                    SendPropertyChanging("JoinTime",_JoinTime,value);
                    _JoinTime = value;
                    SendPropertyChanged("JoinTime");
                }
            }
        }
        string? _Name;
        /// <summary>姓名</summary>
        [MaxLength(50)]
        [Display(Name = "姓名")]
        [Column("name")]
        public virtual string? Name
        {
            get
            {
                return _Name;
            }
            set
            {
                if ((_Name != value))
                {
                    SendPropertyChanging("Name",_Name,value);
                    _Name = value;
                    SendPropertyChanged("Name");
                }
            }
        }
        ActivityJoin_SexEnum? _Sex;
        /// <summary>性别</summary>
        [Display(Name = "性别")]
        [Column("sex")]
        public virtual ActivityJoin_SexEnum? Sex
        {
            get
            {
                return _Sex;
            }
            set
            {
                if ((_Sex != value))
                {
                    SendPropertyChanging("Sex",_Sex,value);
                    _Sex = value;
                    SendPropertyChanged("Sex");
                }
            }
        }
        System.Nullable<Int32> _Age;
        /// <summary>年龄</summary>
        [Display(Name = "年龄")]
        [Column("age")]
        public virtual System.Nullable<Int32> Age
        {
            get
            {
                return _Age;
            }
            set
            {
                if ((_Age != value))
                {
                    SendPropertyChanging("Age",_Age,value);
                    _Age = value;
                    SendPropertyChanged("Age");
                }
            }
        }
        string? _Phone;
        /// <summary>手机号</summary>
        [MaxLength(50)]
        [Display(Name = "手机号")]
        [Column("phone")]
        public virtual string? Phone
        {
            get
            {
                return _Phone;
            }
            set
            {
                if ((_Phone != value))
                {
                    SendPropertyChanging("Phone",_Phone,value);
                    _Phone = value;
                    SendPropertyChanged("Phone");
                }
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<ActivityJoin, bool>> exp)
        {
            base.SetValue<ActivityJoin>(exp);
        }
    }
    public enum ActivityJoin_SexEnum:int
    {
        /// <summary>男</summary>
        Man = 1,
        /// <summary>女</summary>
        Woman = 2
    }
    /// <summary>点赞记录</summary>
    [TableConfig]
    [Table("likehistory")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class LikeHistory :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _CheckInHistoryId;
        [DisallowNull]
        [Column("checkinhistoryid")]
        public virtual Int64 CheckInHistoryId
        {
            get
            {
                return _CheckInHistoryId;
            }
            set
            {
                if ((_CheckInHistoryId != value))
                {
                    SendPropertyChanging("CheckInHistoryId",_CheckInHistoryId,value);
                    _CheckInHistoryId = value;
                    SendPropertyChanged("CheckInHistoryId");
                }
            }
        }
        Int64 _UserId;
        [DisallowNull]
        [Column("userid")]
        public virtual Int64 UserId
        {
            get
            {
                return _UserId;
            }
            set
            {
                if ((_UserId != value))
                {
                    SendPropertyChanging("UserId",_UserId,value);
                    _UserId = value;
                    SendPropertyChanged("UserId");
                }
            }
        }
        System.Nullable<DateTime> _Time;
        [Column("time")]
        public virtual System.Nullable<DateTime> Time
        {
            get
            {
                return _Time;
            }
            set
            {
                if ((_Time != value))
                {
                    SendPropertyChanging("Time",_Time,value);
                    _Time = value;
                    SendPropertyChanged("Time");
                }
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<LikeHistory, bool>> exp)
        {
            base.SetValue<LikeHistory>(exp);
        }
    }
    /// <summary>项目组</summary>
    [TableConfig]
    [Table("checkingroup")]
    [Way.EntityDB.DataItemJsonConverter]
    public partial class CheckInGroup :Way.EntityDB.DataItem
    {
        System.Nullable<Int64> _id;
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        [DisallowNull]
        [Column("id")]
        public virtual System.Nullable<Int64> id
        {
            get
            {
                return _id;
            }
            set
            {
                if ((_id != value))
                {
                    SendPropertyChanging("id",_id,value);
                    _id = value;
                    SendPropertyChanged("id");
                }
            }
        }
        Int64 _OwnerItemId;
        /// <summary>组项目id</summary>
        [DisallowNull]
        [Display(Name = "组项目id")]
        [Column("owneritemid")]
        public virtual Int64 OwnerItemId
        {
            get
            {
                return _OwnerItemId;
            }
            set
            {
                if ((_OwnerItemId != value))
                {
                    SendPropertyChanging("OwnerItemId",_OwnerItemId,value);
                    _OwnerItemId = value;
                    SendPropertyChanged("OwnerItemId");
                }
            }
        }
        Int64 _ChildItemId;
        /// <summary>子项目id</summary>
        [DisallowNull]
        [Display(Name = "子项目id")]
        [Column("childitemid")]
        public virtual Int64 ChildItemId
        {
            get
            {
                return _ChildItemId;
            }
            set
            {
                if ((_ChildItemId != value))
                {
                    SendPropertyChanging("ChildItemId",_ChildItemId,value);
                    _ChildItemId = value;
                    SendPropertyChanged("ChildItemId");
                }
            }
        }
        /// <summary>把字段的更新，设置为一个指定的表达式值</summary>
        /// <param>指定的更新表达式，如 m=&gt;m.age == m.age + 1 &amp;&amp; name == name + "aa"，相当于sql语句的 age=age+1,name=name + 'aa'</param>
         public virtual void SetValue(System.Linq.Expressions.Expression<Func<CheckInGroup, bool>> exp)
        {
            base.SetValue<CheckInGroup>(exp);
        }
    }
}

namespace CheckIn.PlanHost.DBModels.DB
{
    public class CheckInPlan : Way.EntityDB.DBContext
    {
         public CheckInPlan(string connection, Way.EntityDB.DatabaseType dbType , bool upgradeDatabase = true): base(connection, dbType , upgradeDatabase)
        {
            if (!setEvented)
            {
                lock (lockObj)
                {
                    if (!setEvented)
                    {
                        setEvented = true;
                        Way.EntityDB.DBContext.BeforeDelete += Database_BeforeDelete;
                    }
                }
            }
        }
        static object lockObj = new object();
        static bool setEvented = false;
        static void Database_BeforeDelete(object sender, Way.EntityDB.DatabaseModifyEventArg e)
        {
             var db =  sender as CheckInPlan;
            if (db == null) return;
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<CheckInItem>().HasKey(m => m.id);
            modelBuilder.Entity<UserItem>().HasKey(m => m.id);
            modelBuilder.Entity<CheckInDayTime>().HasKey(m => m.id);
            modelBuilder.Entity<CheckInHistory>().HasKey(m => m.id);
            modelBuilder.Entity<HisotryComment>().HasKey(m => m.id);
            modelBuilder.Entity<Activity>().HasKey(m => m.id);
            modelBuilder.Entity<ActivityJoin>().HasKey(m => m.id);
            modelBuilder.Entity<LikeHistory>().HasKey(m => m.id);
            modelBuilder.Entity<CheckInGroup>().HasKey(m => m.id);
        }
        System.Linq.IQueryable<CheckInItem> _CheckInItem;
        /// <summary>打卡项</summary>
        public virtual System.Linq.IQueryable<CheckInItem> CheckInItem
        {
            get
            {
                if (_CheckInItem == null)
                {
                    _CheckInItem = this.Set<CheckInItem>();
                }
                return _CheckInItem;
            }
        }
        System.Linq.IQueryable<UserItem> _UserItem;
        /// <summary>用户参与的打卡项</summary>
        public virtual System.Linq.IQueryable<UserItem> UserItem
        {
            get
            {
                if (_UserItem == null)
                {
                    _UserItem = this.Set<UserItem>();
                }
                return _UserItem;
            }
        }
        System.Linq.IQueryable<CheckInDayTime> _CheckInDayTime;
        /// <summary>打卡计划</summary>
        public virtual System.Linq.IQueryable<CheckInDayTime> CheckInDayTime
        {
            get
            {
                if (_CheckInDayTime == null)
                {
                    _CheckInDayTime = this.Set<CheckInDayTime>();
                }
                return _CheckInDayTime;
            }
        }
        System.Linq.IQueryable<CheckInHistory> _CheckInHistory;
        /// <summary>打卡记录</summary>
        public virtual System.Linq.IQueryable<CheckInHistory> CheckInHistory
        {
            get
            {
                if (_CheckInHistory == null)
                {
                    _CheckInHistory = this.Set<CheckInHistory>();
                }
                return _CheckInHistory;
            }
        }
        System.Linq.IQueryable<HisotryComment> _HisotryComment;
        /// <summary>评论打卡记录</summary>
        public virtual System.Linq.IQueryable<HisotryComment> HisotryComment
        {
            get
            {
                if (_HisotryComment == null)
                {
                    _HisotryComment = this.Set<HisotryComment>();
                }
                return _HisotryComment;
            }
        }
        System.Linq.IQueryable<Activity> _Activity;
        /// <summary>活动</summary>
        public virtual System.Linq.IQueryable<Activity> Activity
        {
            get
            {
                if (_Activity == null)
                {
                    _Activity = this.Set<Activity>();
                }
                return _Activity;
            }
        }
        System.Linq.IQueryable<ActivityJoin> _ActivityJoin;
        /// <summary>活动参与人</summary>
        public virtual System.Linq.IQueryable<ActivityJoin> ActivityJoin
        {
            get
            {
                if (_ActivityJoin == null)
                {
                    _ActivityJoin = this.Set<ActivityJoin>();
                }
                return _ActivityJoin;
            }
        }
        System.Linq.IQueryable<LikeHistory> _LikeHistory;
        /// <summary>点赞记录</summary>
        public virtual System.Linq.IQueryable<LikeHistory> LikeHistory
        {
            get
            {
                if (_LikeHistory == null)
                {
                    _LikeHistory = this.Set<LikeHistory>();
                }
                return _LikeHistory;
            }
        }
        System.Linq.IQueryable<CheckInGroup> _CheckInGroup;
        /// <summary>项目组</summary>
        public virtual System.Linq.IQueryable<CheckInGroup> CheckInGroup
        {
            get
            {
                if (_CheckInGroup == null)
                {
                    _CheckInGroup = this.Set<CheckInGroup>();
                }
                return _CheckInGroup;
            }
        }
        protected override string GetDesignString()
        {
            var result = new StringBuilder();
            result.Append("\r\n");
            result.Append("H4sIAAAAAAAAA+1da3PTVhr+K4w/B+Kr7DDT2aEJu/UupZkGtjtT88GxlUSLLaWyzGWYzAANEK7JFijMcisMELpdknSgpcQp/TORnXziL/ToYls6kqXYOufonET9UKKLZfk57+2873Pecy52rDhZ4Wuxg1+fM/48WqzysYOxcammTMv8xDeV2FDsS+m0cUde4avGX+Zt");
            result.Append("Qhlc/mexUgcHibmhznnl7CzfvRIblfmiwuvPP1RSBEmMWe4tSaLCi4rl9nMF410KsYPgT6EM/k0kc0OFWKk4q30aHBdizau31ZtPt5++L8TAFe1Z+unRGb50Mi9qb6pfGCsqxclijc+PaU/JgDPCEal0EhzE58DBqFSpV8VaQftR7a/KZJK27xLrlYr1K7S7wHG+dqiu");
            result.Append("SHmxJPNV8P7gkiLXee2ZRfEo+Ag4MVWs1LQz5cljABD9w5PCtKDdDM6a58zHHxbr1TF+ShAt5yq8OK3MdI/L/FSxXlF0nLpndayM36ejlK+N/0M/NN9Hksu8rP+0uH51TKiVZKEqiEVFki1vOVop1mrmrzQfrZ/6K/jbchoMXRepFDwqP1zZfnbfPiTHBEUbS1fIOt/t");
            result.Append("hdmpolyaKcr9glaIJTMZ/UN94tZ+hS5wCeTApSHg1KurbthN1Cf7g88cc6rQSyJHLwOht9m43mrctEOXFxVZCgO3TCKJBrcUctw4VyPa/P69urFoR+9zqRxIZ3dg5Aqx4eHmvV+3771trvxSKIhfFsVpft8n+4CyFcT2pdbF9+DomFDVrhi4WqB2w7kQSxjfvHOg00iA");
            result.Append("PqE9Zexfo5I4JUzrLsU4Yxre4zVezuvjMGd1f2XTQdlcaQY8THO7Ewrwm7qr8nG+SQ/nO6Ph2o/z/aJS7sQCrk71KH/a+waRP+3uWbOw2ds437zzwU0Av5jlRUJC2Fq+sLm+DsRsnJdrklisdIVQvfR/8Iqt/86DI+2NMAphBpkQlvQRL1tG4IT+hhVecZwNS2BTNAss");
            result.Append("KyCmaQbRovVw7K4uPFAb60DnhPLHjRvxraevWs/XW28arcYT4xJkCk6LBoiDW4LBwu5euh3vV7c55J58xBVSw2dCMyJj8iVUA5lSILC80n5GYAj7j4Wye8o6ZthQbC4OS+G1H9RLL4BiN++u2aXw75Igjkp1Uwfx+XNsKpzbUwLI4U3mwNardedVc+Gdunhx87dbINjq");
            result.Append("kdvRf3GQxA6XGGI1sTNilU78iR0uOdQj3WaC1J1mgwGhxzf7IUcgtcPBOTFDuGHc2urLKm7IkzqcIyWmOxO3kEZzJtQHND74oUnuOH3EOe2xx0XhG/292s/L10Yr9ZrCy3zZ+i26kdSep3+0K5Qnumh3hmnwp7ZNBPxUcu4sizWesvklRzBlu4pynsnQSAd7alfdw5Og");
            result.Append("HM0ReYhy1Jmbox1ys+iB9qHdYkp4cjSCNbBOwRMyM8HvlhYwJGqseLbjSQcKqe2lGIZC6lSccEjNeSJFezxoh4tEHJ31xIv2eYcfXujjZ3eGRPPei0JBjO/PqguX1YWfjFyr+p9X4PzWlTfgD/XS648bN9SXF5uPHzbvr2qPBcfGfc3VRfX5j9vf/r718oLxOLsR+Yrn");
            result.Append("TwILEqDKGuIIIC+vcnBao1PdbN5dazXmYVqE7pgGRu7fNUmcJGMcMVRMOw7owHilKH4m1ZQDY4pUO6ChoheCvz7xl0Is1JpqIk4i5rM64F5hn/WenUR+bBkFnInekKwCOP1psXSyPmvISXlclmZ5WRH0SPSc9cdrkiFrjqhYab+zpupzc3P0JYUTXhQ/SidBhElDCn8G");
            result.Append("X0aOBF3IT3I7b+0iuCb1ac4KiettHWpVH2IezVIJzlITXnwiBNPUxJCbV9paWVN/v+s6Tf1MqAFxPjvwNDVrnxizNE1NWLUe/zQ1610jY4NNYAeNwGQ1614vA/FU8+ETu0QD8WUaO+QT12zKU+KA0ZKVvgTO6ZbDxgz5VDOb9sTssFhmHDE0lFwrYnD415x/0rwI6eao");
            result.Append("4b4oDQD9MEPDILViBvPFt9YuqIurm40XrYfXwQRSu9+cO+o8WSeD14hS6E1z+CAamLcH3kkSpynIZRDh21qjtF6zN+s9vXhlWZgm3rq03Lp6xS5e40KJWbkKzGYsxGqKLFgliwVWWYIIYRmZFDpyZ/d+3b77x8eNBXXh8vZ3Tz5uXIXWzAhiXekjp0s48UXEezAjikQo");
            result.Append("tshE0UGYvPh+65fHDpbtEeEkJfLnwrD1E8CRvSWAeCm2KXhCurU6v7Wy3jvRAsRQUuSzo1K12o6AB0m05NhNtCSt4ok/0ZJzT4Lpq2LYoorakSOQbcm5Z1sMsYbRM+0rywAiT7nkvFMujCT5fFBDnnTJwQxlw6a6aKxpRVlXXORJmBychFEvX1JX4BYegZMw+Fse+CGH");
            result.Append("LpgOLT7By5l2CTccAbLLPb0C5JwjU9VWTXXpZmt5rad6GufIS1omTpugMRE046VhIxFKPx4Cc6KaiNMkq0PBCArxvkgHBCXbixhOiWRbZNjRx+P5W/VbqIPHoVPGCDPsxtGs22fFuibxEh5Ry6CT2vij+vPdzT+eNi+sQhPo/OEzQeJJvLUC3DIIo6qj0W/ZIPJfGOqr");
            result.Append("kRllZTaUxEt9xRh4Mrya1JK5C48KmSTSWg1VoWgETlF1ksqMpZRJE/hGHPSgdsOL1oMViCNO+8ozIgS+XWdtwu9SkGSApLNnhj3YUw2Sb4ii5MW0QVBddriZtw312isocAUPPyUog5P2R7xXTNNcS05bTTCmWnKo8TBe+oxNdBxGyna1ZyQEz60MEQ3eoBzpBGunM1Ob");
            result.Append("PJEIh+DkSs/FcuV6ybhpYPiwUqZ9gENeWR9xNOZcu7D96Jn64IP6cE19BFGk89Xp43KFadFDXWXn4o4eJrriqhvn1eXrbp1MPuWn6W8H5gcj6lI7F3fQi3QYW43bzUdP3GDsd80IhSCiTtBxcZhohLTNbgirbnwA3GP1DswUTEdKwTBkepdTR0amHdRozc4GjZi5uDev");
            result.Append("i+aIOUMgYrZqtvcCuvZoUJ3nsUGGPyjk4t69vqjPKfrghToW5OLO7VZ6VigBdjTXKH2gCxwEmtIjTkmW2mRofoEB6psvy2jn1XGa5S6s2viQD8vI/Lgrx8hkG5DqbbKba2/M0v2ikQ848gzQ4fo2wR2iTG9bbKHL7G2zbA8HgpjjyBgj2rELLzvQMf/tmfbv3NEj9c/F");
            result.Append("HbQqfcrN6k4CfsE3ut0LWUjapPAysYJXnri4Y7uzdsaHvV2R/BKGe2tbrhReLhgK2YPLT5u/NdRrj5vfQ2vsJmYlsUY7q5Rw7Y5LOLYzcynZHZFKxYAFz/ChQ7f5DBNqS4RXhaORM4VY4m3hg8AEJhyFz1vfqeuLHzdubDZuqWuL6sKa+nwZMoeSTIsLHtH+69cNJ9Ax");
            result.Append("ipgQQtrZR1zC0aHi2gt16WZvEoMWCTLR6ZJIBdnqlOHt9Awkmwv/a75+1gtJBvpfRoG1VaG9KvEhKvRAK+T2pgdCt6ogNCHEW/ZD4VUctOtbr7ZuLnXEq3XnZxTiRXaXHnKCxYQlxFvyQiGEPiwQqtda+wkbAiJDG8SBllmHKnp4a25EnHCY+KUpL5CgrFSbervD+hXE");
            result.Append("putVJCM4VGSKCESGyoNv1i08RMSzwYlnu0vyiSxnH3QPL0uU0Qd3kuaIw2/TrsBNj22QIoo5or22SGok3uoEFZvT92c0rUTyXbuhfJrIXghhFqUwiwDBoSKyV0A0VCiGCm8iORoqhEOFN90aDRXCocKblIyGCuFQ4U3iRUOFbqgyRPaXx9HuqbvGAfseWWRrUbi3bTNP");
            result.Append("D743vP5dbC9m2J0NtzJ4M8po20RyCXiFhLk7FMxPN5cj7VxdSdPT/dpE0lA8jnSQlA4y0Ko1EiU2RIkIZXzQMkmU3Wcmu59hactbLgEvH2Kza4RfVICgamyiGX65LbLqfSijVyIfQcMvuGZt7NLrttuqtlGvVSEHafaV9Cbi0dzsi7MqKP5mX0nvRsLUN3S3weViz5Dj");
            result.Append("lfXEi/pGXz544aKqB8lMWmQwfJJQBm8VDTZ+jogFvqGvnKSfttvDIZblGIneDwVordIW2oETkv3piOvIUaAteAuZWLSFPvZ0Bm+NMVQUd6PQE6kzoprXJu1lKtglaGMfYDI7KYS3DxINzX+i+SshpeOYrRj7LV2IFDTYZCNSOnxKR33DsaRjz5Hl2+oStFmL8cfAKoR/");
            result.Append("o3u/pZnId8hIOTYaOb+sLvwELZzmz+DlqhRiw8OtO+8KBfHzorjvk33AnhTE4WH1xRvw71dSVT+Z1J+Cfm018g0zUnDrA/X92+0P83ZMD00HkcQw16Ij726ScvSJuXq9+XBdXXxnh2x8RhLZVt+91dCEI9MpEEGz1BTcX4dJ50GkRapVbx2dOHad7/CBFL3rgLfLYct1");
            result.Append("+MCF3nM4F8gy6jl8kKPBceyqJeAcXm4T4WZb0eQnmvwMhmk0+YkmP8xNfkKb0ODlMQYsz1lkypu6QntXUJ+KPw19u3dhMZMjssA/eFOclGO13f1Vdekl+H+rMb/99H3rwYrdcuZrf5Ol+mwwigu+5Tt+zXGoaGsd0eVJaiLmLXnhdW+G0gDtgda9GQrZVZ5B+Lkp+8wE");
            result.Append("dkU083OzVr3Ez89Nw5ORjjkzQeqAZugT7XxdG3wE+Lppx8Tj9ZI7fqMzQqXMOn5k+LsDWfousjak8RlUcGgaH92kdl+rbVg1y6WNETieOAt+RvVAXlS4tP5NtrtNa+u8f0KRBXHa+YGuyd35Z2w/querndB+lnZ1glfMD3LpyUyJS3L7c1NTqf3pqZHM/slcOrc/meFG");
            result.Append("OC4xGc/m+Njcn+LmvunQ5AAA");
            return result.ToString();
        }
    }
}

/*<design>
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
<design>*/

